Implement HostCPU.{vendor,speed,modelname}.
authorEwan Mellor <ewan@xensource.com>
Thu, 26 Oct 2006 14:56:44 +0000 (15:56 +0100)
committerEwan Mellor <ewan@xensource.com>
Thu, 26 Oct 2006 14:56:44 +0000 (15:56 +0100)
Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/libxen/include/xen_host_cpu.h
tools/libxen/src/xen_host_cpu.c

index c07c4d4d30e7bad1d158513ce6eaaa14cd6b03e8..7a5896d602cfb378614814bb4509a8e284913393 100644 (file)
@@ -66,6 +66,9 @@ typedef struct xen_host_cpu_record
     char *uuid;
     struct xen_host_record_opt *host;
     uint64_t number;
+    char *vendor;
+    uint64_t speed;
+    char *modelname;
     struct xen_cpu_feature_set *features;
     double utilisation;
 } xen_host_cpu_record;
@@ -191,6 +194,27 @@ extern bool
 xen_host_cpu_get_number(xen_session *session, uint64_t *result, xen_host_cpu host_cpu);
 
 
+/**
+ * Get the vendor field of the given host_cpu.
+ */
+extern bool
+xen_host_cpu_get_vendor(xen_session *session, char **result, xen_host_cpu host_cpu);
+
+
+/**
+ * Get the speed field of the given host_cpu.
+ */
+extern bool
+xen_host_cpu_get_speed(xen_session *session, uint64_t *result, xen_host_cpu host_cpu);
+
+
+/**
+ * Get the modelname field of the given host_cpu.
+ */
+extern bool
+xen_host_cpu_get_modelname(xen_session *session, char **result, xen_host_cpu host_cpu);
+
+
 /**
  * Get the features field of the given host_cpu.
  */
index a6f4a6a6305b002054baee9ab2bda4668cf0d69a..a18ded8150dab2a443d9e4bba50a7d6755944580 100644 (file)
@@ -48,6 +48,15 @@ static const struct_member xen_host_cpu_record_struct_members[] =
         { .key = "number",
           .type = &abstract_type_int,
           .offset = offsetof(xen_host_cpu_record, number) },
+        { .key = "vendor",
+          .type = &abstract_type_string,
+          .offset = offsetof(xen_host_cpu_record, vendor) },
+        { .key = "speed",
+          .type = &abstract_type_int,
+          .offset = offsetof(xen_host_cpu_record, speed) },
+        { .key = "modelname",
+          .type = &abstract_type_string,
+          .offset = offsetof(xen_host_cpu_record, modelname) },
         { .key = "features",
           .type = &xen_cpu_feature_set_abstract_type_,
           .offset = offsetof(xen_host_cpu_record, features) },
@@ -72,6 +81,8 @@ xen_host_cpu_record_free(xen_host_cpu_record *record)
     free(record->handle);
     free(record->uuid);
     xen_host_record_opt_free(record->host);
+    free(record->vendor);
+    free(record->modelname);
     xen_cpu_feature_set_free(record->features);
     free(record);
 }
@@ -167,6 +178,56 @@ xen_host_cpu_get_number(xen_session *session, uint64_t *result, xen_host_cpu hos
 }
 
 
+bool
+xen_host_cpu_get_vendor(xen_session *session, char **result, xen_host_cpu host_cpu)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host_cpu }
+        };
+
+    abstract_type result_type = abstract_type_string;
+
+    *result = NULL;
+    XEN_CALL_("host_cpu.get_vendor");
+    return session->ok;
+}
+
+
+bool
+xen_host_cpu_get_speed(xen_session *session, uint64_t *result, xen_host_cpu host_cpu)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host_cpu }
+        };
+
+    abstract_type result_type = abstract_type_int;
+
+    XEN_CALL_("host_cpu.get_speed");
+    return session->ok;
+}
+
+
+bool
+xen_host_cpu_get_modelname(xen_session *session, char **result, xen_host_cpu host_cpu)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host_cpu }
+        };
+
+    abstract_type result_type = abstract_type_string;
+
+    *result = NULL;
+    XEN_CALL_("host_cpu.get_modelname");
+    return session->ok;
+}
+
+
 bool
 xen_host_cpu_get_features(xen_session *session, struct xen_cpu_feature_set **result, xen_host_cpu host_cpu)
 {